package zw_301_400.zw_387_字符串中的第一个唯一字符;

import java.util.HashMap;
import java.util.Map;

class Solution {

    public static void main(String[] args) {
        String s = "leetcode";
        int firstUniqChar = firstUniqChar(s);
        System.out.println(firstUniqChar);
    }

    /**
     * 数组
     * @param s
     * @return
     */
    public static int firstUniqChar(String s) {
        int[] arr = new int[26];
        int n = s.length();
        for (int i = 0; i < n; i++) {
            arr[s.charAt(i)-'a']++ ;
        }
        for (int i = 0; i < n; i++) {
            if (arr[s.charAt(i)-'a'] == 1) {
                return i;
            }
        }
        return -1;
    }

    /**
     * 哈希表
     * @param s
     * @return
     */
//    public static int firstUniqChar(String s) {
//        Map<Character, Integer> map = new HashMap<Character, Integer>();
////        char[] ch = s.toCharArray();
////        for (char c: ch) {
////            if (map.containsKey(c)){
////                map.put(c, map.get(c) + 1);
////            }else {
////                map.put(c, 1);
////            }
////        }
//        for (int i = 0; i < s.length(); ++i) {
//            char c = s.charAt(i);
//            map.put(c, map.getOrDefault(c, 0) + 1);
//        }
//        for (int i = 0; i < s.length(); i++) {
//            if (map.get(s.charAt(i)) == 1) return i;
//        }
//        return -1;
//    }
}
